package com.eltsistemas.modelo;

import java.io.Serializable;
import java.util.Calendar;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@SuppressWarnings("serial")
@Entity // gera uma tabela com o nome da classe java e cria as colunas de acordo com os atributos.
@org.hibernate.annotations.Entity(dynamicUpdate = true) 

public class Ferias implements Serializable{

	@Id @GeneratedValue
	private Long id;
	
	@OneToOne
	@JoinColumn(name="id_funcionario")
	private Funcionario funcionario;
	
	@Temporal(TemporalType.DATE)
	private Calendar periodo_AquisitivoInicial;
	
	@Temporal(TemporalType.DATE)
	private Calendar periodo_AquisitivoFinal;
	
	@Temporal(TemporalType.DATE)
	private Calendar periodo_RepousoInicial;
	
	@Temporal(TemporalType.DATE)
	private Calendar periodo_RepousoFinal;
	
	private boolean adiantamento;
	
	private String obs;
	
	@Column(nullable=false)
	private int dias;

	@Column(nullable=false)
	private boolean status_Atual;
	
	@OneToMany(mappedBy="ferias", targetEntity = Autorizacao_Ferias.class)
	private List<Autorizacao_Ferias> aut_FeriasList;
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Funcionario getFuncionario() {
		return funcionario;
	}

	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}

	public Calendar getPeriodo_AquisitivoInicial() {
		return periodo_AquisitivoInicial;
	}

	public void setPeriodo_AquisitivoInicial(Calendar periodo_AquisitivoInicial) {
		this.periodo_AquisitivoInicial = periodo_AquisitivoInicial;
	}

	public Calendar getPeriodo_AquisitivoFinal() {
		return periodo_AquisitivoFinal;
	}

	public void setPeriodo_AquisitivoFinal(Calendar periodo_AquisitivoFinal) {
		this.periodo_AquisitivoFinal = periodo_AquisitivoFinal;
	}

	public Calendar getPeriodo_RepousoInicial() {
		return periodo_RepousoInicial;
	}

	public void setPeriodo_RepousoInicial(Calendar periodo_RepousoInicial) {
		this.periodo_RepousoInicial = periodo_RepousoInicial;
	}

	public Calendar getPeriodo_RepousoFinal() {
		return periodo_RepousoFinal;
	}

	public void setPeriodo_RepousoFinal(Calendar periodo_RepousoFinal) {
		this.periodo_RepousoFinal = periodo_RepousoFinal;
	}

	public boolean isAdiantamento() {
		return adiantamento;
	}

	public void setAdiantamento(boolean adiantamento) {
		this.adiantamento = adiantamento;
	}

	public String getObs() {
		return obs;
	}

	public void setObs(String obs) {
		this.obs = obs;
	}

	public List<Autorizacao_Ferias> getAut_FeriasList() {
		return aut_FeriasList;
	}

	public void setAut_FeriasList(List<Autorizacao_Ferias> aut_FeriasList) {
		this.aut_FeriasList = aut_FeriasList;
	}

	public int getDias() {
		return dias;
	}

	public void setDias(int dias) {
		this.dias = dias;
	}

	public boolean isStatus_Atual() {
		return status_Atual;
	}

	public void setStatus_Atual(boolean status_Atual) {
		this.status_Atual = status_Atual;
	}
}
